/**
 * Copyright: Copyright (c) 2018 
 * Company:
 *
 * @author XueWei
 * @date 2018年8月30日 下午1:12:48
 * @version V1.0
 */
package com.smartcommunity.service.businessCircle;

import com.smartcommunity.bean.model.Pager;
import com.smartcommunity.bean.model.Result;
import com.smartcommunity.entity.village.RealCompany;
import com.smartcommunity.entity.village.RealCompanyPeople;
import com.smartcommunity.entity.village.dto.UpdateRealCompanyPeopleDto;

import java.util.Map;

/**
 * @ClassName: RealCompanyService
 * @Description: 实有单位service接口定义
 * @author XueWei
 * @date 2018年8月30日 下午1:12:48
 *
 */
public interface RealCompanyService {

    /**
     * 实有单位信息列表
     *
     * @param map
     * @param currentPage
     * @param pageSize
     * @return
     */
    Pager<RealCompany> pageRealCompanies(Map<String, Object> map, int currentPage, int pageSize);

    /**
     * 单位从业人员信息列表
     *
     * @param map
     * @param currentPage
     * @param pageSize
     * @return
     */
    Pager<RealCompanyPeople> pageRealCompanyPeoples(Map<String, Object> map, int currentPage, int pageSize);

    Result getRealCompany(String id);

    /**
     * @Title: addRealCompany
     * @Description: 新增实有单位
     * @param realCompany
     * @return
     */
    Result insertRealCompany(RealCompany realCompany);

    /**
     * @Description: 修改实有单位
     * @param: Map<String, Object>
     * @return: JSONObject
     * @author: minsheng
     * @date: 2019/1/5 11:05
     */
    Result updateRealCompany(Map<String, Object> paramMap);
    Result updateRealCompany(RealCompany realCompany);

    /**
     * @Title: deleteRealCompany
     * @Description: 删除实有单位
     * @param companyId
     * @return
     */
    Result deleteRealCompany(String companyId);
    /**
     * @Description: 更新公司经纬度
     * @param: RealCompany
     * @return: void
     * @author: minsheng
     * @date: 2019/1/5 11:05
     */
    void updateCompanyCoord(RealCompany realCompany);

    /**
     * @Title: addRealCompanyPeople
     * @Description: 新增从业人员
     * @param realCompanyPeople
     * @return
     */
    Result insertRealCompanyPeople(RealCompanyPeople realCompanyPeople);

    /**
     * @Title: updateRealCompanyPeople
     * @Description: 更新从业人员
     * @return
     */
    Result updateRealCompanyPeople(Map<String, Object> paramMap);
    Result updateRealCompanyPeopleNew(UpdateRealCompanyPeopleDto realCompanyPeople);

    /**
     * @Title: deleteRealCompanyPeople
     * @Description: 删除从业人员
     * @param id
     * @return
     */
    Result deleteRealCompanyPeople(String id);

    /**
     * 获取从业人员
     * @param id
     * @return
     */
    Result getRealCompanyPeople(String id);

    /**
     * @Description: 查询实有单位数量
     * @param: map
     * @return: int
     * @author: minsheng
     * @date: 2019/1/15 14:44
     */
    int countRealCompanies(Map<String, Object> map);

    /**
     * 商圈从业人员年龄统计
     * @param params
     * @return
     */
    Map<String, Object> avgCount(Map<String, Object> params);

    /**
     * 实有商铺柱状图
     * @param params
     * @param groupId
     * @return
     */
    Map<String, Object> countCompany(Map<String, Object> params, String groupId);

    Integer getRealCompanyCount();
}
